# Script Name		: work_connect.py
# Author				: Craig Richards
# Created				: 11th May 2012
# Last Modified		: 31st October 2012
# Version				: 1.1

# Modifications		: 1.1 - CR - Added some extra code, to check an argument is passed to the script first of all, then check it's a valid input

# Description			: This simple script loads everything I need to connect to work etc

import subprocess				# Load the Library Module 
import sys							# Load the Library Module 
import os							# Load the Library Module
import time						# Load the Library Module

dropbox = os.getenv("dropbox")							# Set the variable dropbox, by getting the values of the environment setting for dropbox
rdpfile = ("remote\\workpc.rdp")							# Set the variable logfile, using the arguments passed to create the logfile
conffilename=os.path.join(dropbox, rdpfile)			# Set the variable conffilename by joining confdir and conffile together
remote = (r"c:\windows\system32\mstsc.exe ")	# Set the variable remote with the path to mstsc

text = '''You need to pass an argument
	-c Followed by login password to connect
	-d to disconnect'''											# Text to display if there is no argument passed or it's an invalid option - 1.2

if len(sys.argv) < 2:											# Check there is at least one option passed to the script - 1.2
  print(text)															# If not print the text above - 1.2
  sys.exit()														# Exit the program - 1.2
  
if '-h' in sys.argv or '--h' in sys.argv or '-help' in sys.argv or '--help' in sys.argv:	# Help Menu if called
    print(text)														# Print the text, stored in the text variable - 1.2
    sys.exit(0)														# Exit the program
else:
  if sys.argv[1].lower().startswith('-c'):					# If the first argument is -c then
    passwd = sys.argv[2] 									# Set the variable passwd as the second argument passed, in this case my login password
    subprocess.Popen((r"c:\Program Files\Checkpoint\Endpoint Connect\trac.exe connect -u username -p "+passwd))
    subprocess.Popen((r"c:\geektools\puttycm.exe"))
    time.sleep(15)												# Sleep for 15 seconds, so the checkpoint software can connect before opening mstsc
    subprocess.Popen([remote, conffilename])
  elif sys.argv[1].lower().startswith('-d'):					# If the first argument is -d then disconnect my checkpoint session.
    subprocess.Popen((r"c:\Program Files\Checkpoint\Endpoint Connect\trac.exe disconnect "))
  else:
    print('Unknown option - ' + text)						# If any other option is passed, then print Unknown option and the text from above - 1.2
